home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 5 / The 640 Meg Shareware Studio CD-ROM Volume V (Data Express)(1994).ISO / amiga / sprdrw02.lha / SpiroDraw02.doc < prev    next >
Text File  |  1994-03-14  |  19KB  |  345 lines

  1.  
  2.     User Document for SpiroDraw02  94-03-13
  3.  
  4.     I. What is this program and who wrote the thing?
  5.     ------------------------------------------------
  6.  
  7.          SpiroDraw is a program that simulates the spiral drawing
  8.     child's toy.  It is almost as rewarding to watch the design being
  9.     drawn by the computer as I remember it being to actually draw
  10.     the design yourself, using the pins, and wheels and everything.
  11.     It is certainly more accurate since the computer does not have
  12.     to worry about holding all the wheels and guides perfectly still
  13.     while winding the drawing wheel around inside or outside the
  14.     guide wheel.  If you have ever used this toy then I am sure
  15.     you know what I mean!
  16.  
  17.     This program was written in ACE 2.0 (c)David Benn
  18.     on an A2000HD (running OS 2.1)
  19.  
  20.     If you get any enjoyment or productive use from this program,
  21.     drop me a line.  I'd like to hear from you (if you REALLY
  22.     like it, drop a buck or two in the envelope!).
  23.  
  24.         Charles E. Kenney, II
  25.         4 Burbank Circle
  26.         Framingham, MA 01701
  27.         USA
  28.               phone: (508) 877-5959
  29.                  or: (508) 877-4771
  30.  
  31.     If you send me a disk and a stamped self-addressed disk mailer,
  32.     I will also send you the latest version of 'SpiroDraw' and the
  33.     source code alomg with any other little ditties I come up with.
  34.  
  35.     Thanks.
  36.        -ck.
  37.  
  38.     P.S. Thanks again to David Benn for his wonderful compiler, "ACE".
  39.  
  40.  
  41.     II. Program Set-up and Menu Descriptions
  42.     ----------------------------------------
  43.  
  44.     'SpiroDraw' starts with default setting for a SpiroDraw design so
  45.     you can see immediately what 'SpiroDraw' can do.  Following are
  46.     decriptions of the various menus and resultant actions:
  47.  
  48.  
  49.     The "Project" menu contains the "standard" Load and Save functions:
  50.  
  51.       Load - The user may load data for a previously saved design.
  52.              Data files for SpiroDraw alway have a ".ddf" extension.
  53.              The current data is "backed-up" before the data is
  54.              loaded (See "Last Data..." above).
  55.  
  56.       Save - The user may save data for a design if desired.
  57.              If the user does not include a ".ddf" file extension,
  58.              'SpiroDraw' adds it automatically.
  59.  
  60.       Draw - Draws the SpiroDraw design for the data and other
  61.              parameters currently in effect for 'SpiroDraw'.
  62.  
  63.       Quit - Well... This is how to exit 'SpiroDraw'!
  64.  
  65.  
  66.     The "Design" menu contains all the functions
  67.     the user needs to set the design parameters:
  68.  
  69.       Set Data...   - Invokes a screen which allows the user to specify
  70.                       the three "size" parameters for the SpiroDraw
  71.                       design; Guide Ring, Drawing Wheel and Pen-Hole
  72.                       (see "A few words about 'SpiroDraw'" below for a
  73.                       description of these).
  74.                       The user may also elect to place the Drawing Wheel
  75.                       inside, outside or both on the Guide Ring.
  76.                       Clicking on the "Done" gadget exits this function
  77.                       and the user is asked whether or not to draw the
  78.                       new design using the new design parameters.
  79.       
  80.       Wheel Inside  - If this Menu item does not have the "check-mark"
  81.                       then the "check-mark" is placed in the menu and
  82.                       'SpiroDraw' will place the Drawing Wheel inside
  83.                       the Guide Ring for subsequent SpiroDraws.
  84.                       If this Menu item does have the "check-mark"
  85.                       then the "check-mark" is removed from the menu
  86.                       and 'SpiroDraw' will not place the Drawing Wheel
  87.                       inside the Guide Ring for subsequent SpiroDraws.
  88.                       'SpiroDraw' will also automatically "check-mark"
  89.                       the "Draw Outside" menu if it is not already.
  90.  
  91.       Wheel Outside - If this Menu item does not have the "check-mark"
  92.                       then the "check-mark" is placed in the menu and
  93.                       'SpiroDraw' will place the Drawing Wheel outside
  94.                       the Guide Ring for subsequent SpiroDraws.
  95.                       If this Menu item does have the "check-mark"
  96.                       then the "check-mark" is removed from the menu
  97.                       and 'SpiroDraw' will not place the Drawing Wheel
  98.                       outside the Guide Ring for subsequent SpiroDraws.
  99.                       'SpiroDraw' will also automatically "check-mark"
  100.                       the "Draw Inside" menu if it is not already.
  101.  
  102.       Detail...  - Invokes a window which allows the user to specify
  103.                    how detailed the drawn design will be.  Clicking
  104.                    on the "Next" gadget cycles through all possible
  105.                    choices (each selection also causes 'SpiroDraw' to
  106.                    take progressively longer to draw the design):
  107.  
  108.                    DOTTY   - plots dots at visible intervals rather than
  109.                              drawing a continuous line while the design
  110.                              is being drawn (dots may be connected with
  111.                              a line between each dot - see the description
  112.                              for the "Connect Dots" menu item below).
  113.  
  114.                    SKETCHY - plots dots at smaller intervals than "DOTTY"
  115.  
  116.                    COARSE  - plots dots at _really_ small intervals.
  117.  
  118.                    FINE    - plots dots so close together that they are
  119.                              a continuous line when 'SpiroDraw' draws.
  120.  
  121.       Connect Dots - The user may "check-mark" this menu item to connect
  122.                      the dots that are plotted by 'SpiroDraw' with a line
  123.                      to give the design a continuous-line appearance.
  124.                      This menu item is automatically disabled if the
  125.                      selects "FINE" in the "Detail..." menu above since
  126.                      the design will already have a continous appearance.
  127.  
  128.       Clear Canvas - The user may "check-mark" this menu item to clear
  129.                      the drawing "canvas" before drawing each design.
  130.                      If this menu item is not "check-marked" then many
  131.                      designs can be drawn "on top of" each other.
  132.  
  133.       Last Data... - "SpiroDraw" has an design buffer capable of holding
  134.                      8 sets of design data (Guide Ring, Drawing Wheel
  135.                      and Pen-Hole parameters).  When the user selects
  136.                      this menu item, the previous data in use before
  137.                      the current data is placed into the current data
  138.                      and the other 7 sets of data are "bubbled-up", with
  139.                      the current data being "sent down" to the 8th set
  140.                      of data.  Note that any time the user modifies the
  141.                      current data by loading new data from disk, by
  142.                      exiting the "Set Data..." window after making changes,
  143.                      or by selecting "Random Data..." (below), the
  144.                      current data is "backed-up" to the "1st" buffer,
  145.                      the "1st" to the "2nd", the "2nd" to the "3rd", etc.
  146.                      The "8th" set of data gets "pushed off the cliff".
  147.  
  148.       Random Data... - This menu item randomizes the design sizes for
  149.                        the Guide Ring, Drawing Wheel and Pen-hole.
  150.                        The user is then asked whether or not to "see"
  151.                        the randomized design.  If the user elects to
  152.                        "see" the new random sizes, 'SpiroDraw' invokes
  153.                        the "Set Data..." function (see above).
  154.                        The current data is "backed-up" before the data
  155.                        is randomized (See "Last Data..." above).
  156.  
  157.     The "Preferences" menu contains the following functions:
  158.  
  159.       Ask Save - Any time data is changed in "SpiroDraw", the user is
  160.                  asked whether or not to save the "old" data if this
  161.                  menu item is "check-marked".  "UN-check-marking"
  162.                  this menu item stops "SpiroDraw" from asking.
  163.                  It _can_ be annoying.  "SpiroDraw" _always_ asks
  164.                  the user whether to save the new data (if it has
  165.                  been changed) when the "Quit" menu item is selected.
  166.  
  167.       Show Activity - When this menu item is "check-marked", a small
  168.                       rotating wheel is displayed in the center of the
  169.                       screen while the design is being drawn.  This is
  170.                       done to show that "SpiroDraw" is "doing something".
  171.                       It is difficult to see the design changing sometimes
  172.                       if the Pen-Hole value is very near zero or if the
  173.                       sizes of the Guide Ring and the Drawing Wheel are
  174.                       very nearly equal.  There are instances when this
  175.                       little rotating wheel would ruin the appearance of
  176.                       the center of the design so to avoid this, the user
  177.                       may "UN-check-mark" this menu item.
  178.  
  179.       Visual Round
  180.       Screen Round  - This is a "cycling menu" function.  Each time
  181.                       this menu item is selected the function is
  182.                       "swapped" to the other selection,
  183.                       "Visual Round" to "Screen Round" and vice versa.
  184.  
  185.              If the user selects "Visual Round", the design will be
  186.              drawn with a perfectly circular appearance on the screen.
  187.              If the user selects "Screen Round", the design will be
  188.              drawn with a slightly oval appearance on the screen, but
  189.              this is a useful selection if the design is "snapped" as
  190.              an IFF file (using a "screen-capture-to-IFF-file" program
  191.              and then imported into a paint package capable of animation.
  192.              Once this is done, the design can be rotated while still
  193.              maintaining its "roundness".  This has been used successfully
  194.              with DPaint.
  195.  
  196.       Resolution... - Invokes a window which allows the user to specify
  197.                       different screen resolutions.  Clicking on the
  198.                       "Next" gadget cycles through all possible choices:
  199.  
  200.                       If the user selects "LOW" then 'SpiroDraw' will
  201.                       change to low resolution (320,200 screen).
  202.                       If the user selects "MEDIUM" then 'SpiroDraw' will
  203.                       change to medium resolution (640,200 screen).
  204.                       If the user selects "HIGH" then 'SpiroDraw' will
  205.                       change to high resolution (320,200 screen).
  206.  
  207.  
  208.     III.  A few words about 'SpiroDraw'
  209.     --------------------------------------
  210.  
  211.          The Guide Ring was, for the child's toy, the plactic ring with
  212.     "gearing" on each side that was so hard to hold perfectly in place
  213.     on the paper while winding the Drawing Wheel around the inside or
  214.     outside of the Guide Ring.  Even pinning the Guide Ring down through
  215.     the paper onto cardboard was never much help either!  'SpiroDraw'
  216.     holds the Guide Ring in place quite nicely though.  'SpiroDraw' places
  217.     places the Guide Ring in the center of the screen.
  218.  
  219.          The Drawing Wheel was, for the child's toy, the plastic "wheel"
  220.     with "gearing" (to mesh with the Guide Ring) that was so hard to keep
  221.     engaged to the gearing of the Guide Ring while winding the Drawing
  222.     Wheel around the inside or outside of the Guide Ring.  If you went
  223.     too slowly you would sometimes get "stuck" due to the "cam" effect
  224.     of the pen-hole in the Drawing Wheel that you had chosen, especially
  225.     if you chose a pen-hole way out near the edge of the Drawing Wheel!
  226.     If you went too fast the the gearing between the Drawing Wheel and
  227.     the Guide Ring would slip or disengage altogether and you would draw
  228.     a nice ugly, frantic and ruinous line across your design!  This was
  229.     REALLY frustrating, especially if you were "almost done"... and only
  230.     6 years old!  'SpiroDraw' will never know gear slips and getting
  231.     stuck by the "cam" effect!
  232.  
  233.  
  234.          The "Pen-Hole" was, for the child's toy, the little hole in the
  235.     Drawing Wheel (there were lots of these little holes in each wheel)
  236.     that you would put your pen into which would determine the "character"
  237.     of the design - the holes closest to the center of the Drawing Wheel
  238.     would produce "circular" designs (for 'SpiroDraw', small values for
  239.     the Pen-hole distance from the center of the Drawing Wheel), and the
  240.     holes closest to the edges of the Drawing Wheel would produce very
  241.     "spirally" designs  (for 'SpiroDraw', large values for the Pen-hole
  242.     distance from the center of the Drawing Wheel).  Note that 'SpiroDraw'
  243.     allows a distance for the Pen-hole which is larger than the radius of
  244.     the Drawing Wheel but not larger than 94 for LOW and MEDIUM RESOLUTION
  245.     or 191 for HIGH RESOLUTION.  Again, you can go ahead and TRY putting
  246.     a pen into a hole on the Drawing Wheel that is larger than the Drawing
  247.     Wheel itself using the child's toy!
  248.  
  249.     IV.  A "useful" way to use this program
  250.          (depending on your definition of "useful")
  251.     -----------------------------------------------
  252.  
  253.          Here is a neat little tidbit for using this program with a
  254.     Paint package (if you would like to play with or animate any of
  255.     your designs that you generate with this program):
  256.  
  257.          For DPaint, anyway, this works nicely...
  258.  
  259.          1.  Start up one of those "snap" programs "in the background"
  260.              which is capable of saving a screen as an IFF file.
  261.              I have used "SNAPIT!" (by... Oh, I forget) successfully.
  262.  
  263.          2.  Generate your design using the "screen" roundness
  264.              choice during the "user input" routine.  This choice
  265.              is known to work for DPaint.
  266.  
  267.          3.  Once the design has finished being generated, shrink
  268.              the "User Input" window as much as is necessary in
  269.              the design window and execute whatever key sequence
  270.              is required by the "snap" program you have and save
  271.              the design as an IFF file.
  272.  
  273.          4.  Call up your Paint package and do whatever.  I have
  274.              had fun "rolling" my designs across the screen or
  275.              "into the distance" or even using the design as a
  276.              circular border for other brushes, etc.  Be creative!
  277.  
  278.  
  279.          The following history also appears verbatim as a comment
  280.     at the top of the source program since virtually any significant
  281.     change to the source will result in a significant change to the
  282.     documentation and vice versa.  Also, if you have this user doc
  283.     and not the source, you can see any revision information and
  284.     when it is/was implemented.
  285.  
  286.          Note that as of the first writing of this document
  287.     (for SpiroDraw01), 94-02-17, this little program was
  288.     only 3 days shy of its 10th birthday!
  289.  
  290.     Great advertising hook - "A DECADE IN THE MAKING!"
  291.  
  292.     PROGRAM REVISION HISTORY (in reverse chronological order)
  293.     ----------------------------------------------------------------
  294.     Added the option to Save the screen as an IFF file
  295.         (if this capability is added to ACE)                NOT YET!
  296.     Uploaded to AMINET as SpiroDraw02                       94-03-13
  297.     Rewrite Documentation for Menus and new features        94-03-13
  298.     All the new stuff                                       94-03-13
  299.     Added more robust file-handling                         94-03-11
  300.     Added more pretty-up code                               94-03-11
  301.     Added switches to ask to save data every time
  302.         data is changed or to not ask and whether to show
  303.         the little activity loop while design is drawn      94-03-11
  304.     Added activity loop while design is being drawn         94-03-11
  305.     Added memory buffer for 8 designs                       94-03-11
  306.     Added some more error handling and pretty-up code       94-03-10        
  307.     Added RANDOMIZATION of design parameters                94-03-09
  308.     Debugged more GADGET code                               94-03-09
  309.     More GADGET coding                                      94-03-09
  310.     Debugged new gadget code                                94-03-08
  311.     Coded "design size" parameters using GADGETs            94-03-08
  312.     Coded "resolution" parameter using GADGETs              94-03-07
  313.     Coded "detail" parameter using GADGETs                  94-03-07
  314.     Ask the user to draw immediately upon reading a .spd    94-03-07
  315.     Added more robust File I/O error handling...
  316.                                  ... could still use more   94-03-07
  317.     Ability to choose (and now change) SCREEN resolution
  318.         "pulled" into the main program                      94-03-06
  319.     MENU and code to Save/Load design parameters            94-03-04
  320.     Added Dummy MENUs for Load and Save                     94-03-04
  321.     Added additional design types skeleton code and menus   94-03-04
  322.     Replaced "hack" user inputs with MENU constructs
  323.         This would enable the user to set up all the
  324.         "design" parameters and change only those
  325.         parameters desired while maintaining all the
  326.         others (user doc changed too)                       94-03-03
  327.     UPLOADED to Aminet as SpiroDraw01                       94-02-25
  328.     Cleaned-up the plot loop, eliminated some "goto"s       94-02-21
  329.     Cleaned up screen and window sizes, user input text     94-02-20
  330.     Fixed new "revolutions" bugs (variable rvlv)
  331.         introduced while cleaning-up the code               94-02-19
  332.     Program now runs from WorkBench                         94-02-17
  333.     The user is now asked for "Pen-hole distance"
  334.         before being asked "inside, outside, or both"
  335.         This order seemed to be more logical after as
  336.         a result of writing the documentation               94-02-17
  337.     Finally wrote the documentation                         94-02-17
  338.     More refinement of programming constructs               94-02-16
  339.     Refinement of programming constructs                    94-02-15
  340.     Revived from my AmigaBasic hacks and converted
  341.     to ACE (great package, David Benn!)                     94-02-14
  342.     Converted from C-64 SIMON'S BASIC to AmigaBasic         87-11-20
  343.     Program initiated and hacked into working order
  344.       using SIMON'S BASIC for the Commodore 64 (tm)         84-02-20
  345.